package com.sz.biz.logistics.ord.service;

import com.sz.biz.logistics.ord.entity.OrdOrderStatusCode;
import com.sz.biz.logistics.ord.dto.OrdOrderStatusCodeDto;
import com.sz.biz.logistics.ord.dto.OrderStatusCodeDto;
import com.sz.biz.logistics.ord.dto.TrackStatusOperTypeDto;

import java.util.List;

/**
 * Function: 物流状态service <br>
 * Author: hpeng.wang <br>
 * Date: 2017-04-28 10:07:00
 */

public interface OrdOrderStatusCodeService {
    /**
     * 获取会修改订单状态的消息码
     *
     * @return 消息码的集合
     */
    List<String> findReviseStatusList();
    List<OrdOrderStatusCode> findReviseStatus();

    /**
     * 根据物流消息的code来获取OrdOrderStatusCode
     *
     * @param code
     * @return
     */
    OrdOrderStatusCode getByCode(String code);


    /**
     * 获取所有的编码
     */

    List<OrdOrderStatusCodeDto> getAllCodes();

    /**
     * 根据类型来获取codes
     * @param rankList
     * @param type
     * @return
     */
    List<OrderStatusCodeDto> getCodesByType(List<Integer> rankList, int type);
    /**
     * 获取客服添加物流时的二级下拉框数据
     * @param rankList 等级
     * @return 集合
     */
    List<TrackStatusOperTypeDto> getCodesByType(List<Integer> rankList);


    /**
     * 根据code的开始的第一位，去找以这个第一位字符开始的最大的code
     * @param startCode
     * @param operType:操作类型
     * @param type: 物流信息是否正常 1=正常，2=异常
     * @return
     */
    String getMaxCode(String startCode,int operType,int type);

    /**
     * 根据模板消息，处理参数
     * @param message
     * @return
     */
    String[] getParams(String message);


    List<Integer> getRanks();

}
